package com.itzmn.newcode.offer1;

/**
 * @Author: 张梦楠
 * @Date: 2018/12/19 13:25
 * 简书：https://www.jianshu.com/u/d611be10d1a6
 * 码云：https://gitee.com/zhangqiye
 * @Description: 调整数组顺序使得技术为在偶数位前面
 *
 * 输入一个整数数组，实现一个函数来调整该数组中数字的顺序，
 * 使得所有的奇数位于数组的前半部分，所有的偶数位于数组的后半部分，
 * 并保证奇数和奇数，偶数和偶数之间的相对位置不变。
 *
 *
 * 思路：使用直接插入法，将奇数插入到前面
 *
 *
 */
public class _13_AdjustTheOrderOfTheArray {

    public static void main(String[] args) {

        new _13_AdjustTheOrderOfTheArray().test();
    }

    private void test() {

        reOrderArray(new int[]{2,3,4,5,6,7,8});
    }
    public void reOrderArray(int [] array) {

        for (int i=1;i<array.length;i++){

            if (array[i] % 2 == 1){
                int temp = array[i];
                for (int j=i-1;j>=0;j--){
                    if (array[j] % 2 == 0){
                        array[j+1] = array[j];
                    }
                    if (array[j] % 2 == 1){
                        array[j+1] = temp;
                        break;
                    }
                    if (j == 0){
                        array[0] = temp;
                    }
                }
            }

        }
    }

}
